part of '../shelf.dart';

/// 当发生任何错误的时候，都会将服务器发生错误的代码位置
Middleware errorHandle = createMiddleware(
  errorHandler: (Object error, StackTrace trace) async {
    if (error is Bug || error is ServerException) {
      // 如果是Bug错误，则照常400返回就可以了
      return response(400, error);
    } else {
      // 如果是其他错误，则返回500错误
      // TODO：最好有种方式能够记录在服务器的日志中
      return response(
        500,
        "${error.toString()}\n${trace.toString()}",
      );
    }
  },
);
